每天早上,一家國際物流公司都會收到廠商寄來的 Excel 檔案,裡面有上百筆訂單資料,如下圖:
原本的流程很單純,卻非常耗時:
先把檔案從信箱或雲端下載下來
打開 Excel,篩選出屬於自己公司客戶編號(AB開頭)的訂單
再依照重量計算運費(每公斤 250 元)
最後把結果貼到 Google Sheets 報表,給財務跟客服使用
這四個步驟看起來不難,但每天都要重複做,浪費大量時間,而且還容易出錯。
所以今天的文章,我會帶你用 n8n 把這一連串的步驟自動化。
我在 n8n 裡設計了一條 Workflow 工作流,長得像這樣:
只要把每日的 Excel 檔案丟進指定的 Google Drive 資料夾,整個流程就會自動啟動,並依序完成以下幾個動作:
運費 = 重量 × 250
如果一開始毫無頭緒該怎麼設計 Workflow、Nodes,可以參考我 Day6 的文章的提示詞,可以用 AI 工具做初步規劃。
首先,在 n8n 首頁,點右上方的「Create Workflow」
到 Workflow 的畫面後,點中間的「Add first step」右側會出現 Trigger 選項
接下來我們就來說明每個 Node 要怎麼設定。
因為我們在這邊已經確認要選擇「Google Drive Trigger」,直接搜尋「Google Drive」
點 Google Drive 會出現兩個選項,因為是當資料夾裡有新增檔案才啟動,我們選第二個「On Changes involving a specific folder」
接著我們要點 Node 右上方的⋯,選擇「Open」去設定 Node 的執行細節
設定方式:
要怎麼取得 Google Drive 的 Folder ID?到所在的資料夾,上方的紅框框起來的就是
第一個 Node 設定好後,滑鼠移到 Node 上方會出現 ▶︎ 執行符號,點下去可以看這個 Node 執行之後的結果
執行成功後如圖所示
做好第一個 Node 後,要怎麼做第二個呢?
直接點第一個 Node 後面的+號,出現右側欄,再搜尋框裡面輸入關鍵字就可以找到
我們要的 Node 是 Google Drive > Download File
這一步的作用是把觸發到的 Excel 檔案下載下來,存在流程裡,後面才能解析。
在 n8n 裡,這種 {{…}} 的寫法叫做 Expression(表達式)。它的作用是「從上一個節點的輸出 JSON 裡抓資料」。
像這裡的 {{$json.id}},意思就是「去拿前一個 Trigger 節點輸出的 id 欄位」。這個欄位正好就是檔案的唯一 ID,所以能幫我們自動下載正確的檔案。
雖然看起來像在寫程式,但其實不用自己打 {{$json.id}}。你只要在右側的 Input 欄位清單裡,直接拖拉 id 到空格,n8n 就會自動幫你生成這段表達式。
執行之後,右邊的輸出結果可以看到檔案名稱、副檔名、大小,Binary Property 預設叫 data,這就是後面解析 Excel 要用的來源。
這一步的作用是把下載下來的 Excel 轉成可用的資料。每一列會被解析成一個 item(像右邊的輸出結果顯示:貼單號碼、客戶編號、重量…)。
設定方式:
這樣設定好之後,Excel 的表格就會自動被拆成結構化資料,後面就可以針對欄位做篩選、計算或寫入報表。
小提醒:
欄位名稱會依照 Excel 第一列的表頭來決定,所以要確認表頭清楚、不要有重複。
這一步的作用,是把我們需要的訂單挑出來,其他全部丟掉。
在這個案例裡,我設定了條件:欄位:{{$json["客戶編號"]}} 判斷方式:Starts with 值:AB
意思就是:只要客戶編號是以 AB 開頭的訂單,就會被保留下來;不是的,就會被丟到 Discarded。
右邊的輸出結果也能看到:Kept = 22 筆,Discarded = 11 筆,代表篩選條件成功生效。
這一步的作用,是在資料裡新增一個「運費」欄位,讓 n8n 自動幫我們計算金額。原本人工要一筆一筆按計算機,現在直接在流程裡完成。
設定方式:
{{$json["重量"] * 250}}
結果:右邊可以看到,每筆資料除了原本的欄位之外,會多出一個「運費」欄位,例如重量 13.9 公斤 → 運費 3475 元。
這一步,就是把已經處理好的資料寫進 Google Sheets 報表,等於完成最後的輸出。
選擇 Google Sheet > Append Row in Sheet Node
設定方式:
原本要每天花時間處理的 Excel 報表,現在只要供應商把檔案丟進指定的 Google Drive 資料夾,n8n 就能自動完成以下流程:
最終結果,就像 Google Sheet 裡看到的一樣:所有訂單自動整理好,運費也算出來,報表即時更新。
這樣一來,員工不用每天重複同樣的人工操作,不但省下大把時間,也大幅降低出錯的機率。
更重要的是,流程建好之後,就能每天自動跑,真正做到「丟檔案 → 自動完成」。
但如果遇到一個 Excel 檔案有多個工作表?或是需要合併其他表單的資料,該怎麼做呢?
明天我將會分享更多進階內容,不要錯過了!